package practice3;

import java.util.ArrayList;
import java.util.List;

/**
 * # 问题描述
 * <p>
 * 小明是一个五年级的小学生，今天他刚刚学习了整除，想练习一下自己的掌握情况。
 * 他在纸上写了一个长度为 `n` 的正整数序列，`a_0, a_1,..., a_{n - 1}`，然后想了一个正整数 `b`，
 * 他想知道这个序列有多少个连续子串的和满足能够被 `b` 整除。你可以帮帮他吗？
 * <p>
 * ## 输入格式
 * <p>
 * 共两行，第一行包含两个正整数 `n(1 <= n <= 10^5)` 和 `b(1 <= b <= 10^8)`，
 * 第二行包含 `n` 个正整数，表示 `a_0, a_1,..., a_{n - 1}(1 <= a_i <= 10^4)`。
 * <p>
 * ## 输出格式
 * <p>
 * 共 1 行，一个整数，表示这个序列有多少个连续子串的和满足能够被 `b` 整除。
 * <p>
 * **输入样例 1**
 * <p>
 * 3 3
 * 1 2 3
 * <p>
 * **输出样例 1**
 * <p>
 * 3
 * <p>
 * **数据范围**
 * <p>
 * 50%的数据：`n(1 <= n <= 10^3)`。
 * <p>
 * 100%的数据：`n(1 <= n <= 10^5)`。
 */
public class Main {
    public static int solution(int n, int b, List<Integer> sequence) {
        // Please write your code here
        int count = 0;
        for (int i = 0; i < n; i++) {
            int sum = 0;
            for (int j = i; j < n; j++) {
                sum += sequence.get(j);
                if (sum % b == 0) {
                    count++;
                }
            }
        }

        /*if (count > 0) {
            return count;
        }else {
            //输入错误
            System.out.println("输入错误!");
        }*/


        return count;

        //return -1;
    }

    public static void main(String[] args) {
        // You can add more test cases here
        List<Integer> sequence = new ArrayList<>();
        /*sequence.add(1);
        sequence.add(2);
        sequence.add(3);
        System.out.println(solution(3, 3, sequence) == 3);*/

        sequence.add(22);
        sequence.add(19);
        sequence.add(10);
        sequence.add(3);
        sequence.add(12);
        sequence.add(17);
        sequence.add(15);
        sequence.add(24);
        sequence.add(4);
        sequence.add(8);
        sequence.add(6);
        sequence.add(4);
        sequence.add(21);
        sequence.add(5);
        sequence.add(9);
        sequence.add(7);
        sequence.add(17);
        sequence.add(24);
        sequence.add(20);
        sequence.add(11);
        sequence.add(20);
        sequence.add(2);
        sequence.add(12);
        sequence.add(24);
        sequence.add(10);
        System.out.println(solution(25, 12, sequence)); // 预期输出 22
    }
}